package com.lkj;

import com.lkj.annotation.Autowired;
import com.lkj.config.AnnotationConfig;
import com.lkj.entity.Person;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Main {

    public static void main(String[] args) {


        AnnotationConfig.getInstance();

        AnnotationConfig.getInstance().doMapper("/user/getUserByUserName");


//        try {
//            Class<?> aClass = Class.forName("com.lkj.controller.UserController");
//
//            Class<?> service = Class.forName("com.lkj.service.impl.UserServiceImpl");
//
//            Object obj = null;
//
//            for (Field field : aClass.getDeclaredFields()) {
//
//                if (field.isAnnotationPresent(Autowired.class)) {
//
//                    Autowired autowired = field.getAnnotation(Autowired.class);
//
//                    field.setAccessible(true);
//                    obj = aClass.newInstance();
//                    field.set(obj,service.newInstance());
//
//                    System.out.println(obj);
//
////                    Class<?>[] interfaces = service.getInterfaces();
////
////                    for (Class<?> i : interfaces) {
//////                        Object o = service.newInstance();
////
////                    }
//
//                }
//            }
//
//
//            for (Method method : aClass.getMethods()) {
//                String name = method.getName();
////                System.out.println(name);
//                if (name.equals("getUserByUserName")){
//                    Object o = method.invoke(obj,"lkj");
//                    System.out.println(o);
//                }
//            }
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }

//        try {
//            Class<?> aClass = Class.forName("com.lkj.entity.Person");
//
//            Field field = aClass.getDeclaredField("age");
//
//            field.setAccessible(true);
//
////            Person person = new Person();
//            Object o = aClass.newInstance();
//
//            field.set(o,100);
//
//            System.out.println(o);
//
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }


    }


}
